import java.util.*;

/**
 * @author LKQ
 * @date 2022/4/16 21:38
 * @description 逆向思维，从后往前，最后一次是蓝色且这个数在查询范围内，那么这个数肯定不为红色，直接跳出，最后一次是红色，并且在查询范围内，那么肯定为红色，+1
 */
public class Solution2 {
    public static void main(String[] args) {

    }
    int ans = 0;
    int[][] ops;

    private void dfs(TreeNode root) {
        if (root == null) {
            return;
        }
        dfs(root.left);
        check(root.val);
        dfs(root.right);
    }

    private void check(int val) {
        for (int i = ops.length - 1; i >= 0; i--) {
            if (ops[i][0] == 1 && val >= ops[i][1] && val <= ops[i][2]) {
                // 最后一次遇到红色，且在范围内，那么肯定成红色了
                ans++;
                break;
            }
            if (ops[i][0] == 0 && val >= ops[i][1] && val <= ops[i][2]) {
                // 最后一次遇到蓝色且这个数在范围之间，那么肯定不会成红色
                break;
            }
        }
    }
    public int getNumber(TreeNode root, int[][] ops) {
        this.ops = ops;
        dfs(root);
        return ans;
    }
}
